perm filename MET5.LSP[TIM,LSP]  blob 
sn#717381 filedate 1983-06-18 generic text, type C, neo UTF8
 
COMMENT ā   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	(declare (fasload meter)
C00005 ENDMK
Cā;
(declare (fasload meter)
	 (load "metint.lsp")
	 (setq meter:count-only ()))
(declare 
 (setq local-objects-of-interest ()))
(DECLARE (MAPEX T))
(meter:meter deriv
 (meter-funs #.(all-objs)
	     (DEFUN DER1 (A) 
		    (mn "DER1" der1)
		    (mn "Conses" cons 3)
		    (LIST 'QUOTIENT (DERIV A) A)))
 (meter-funs #.(all-objs)
(DEFUN DERIV (A)
       (mn "DERIV" deriv)
	(COND 
	 ((ATOM A)
	  (COND ((EQ A 'X) 1) (T 0)))
	 ((EQ (CAR A) 'PLUS)	
	  (mn "Conses" cons (length a))
	  (CONS 'PLUS (MAPCAR 'DERIV (CDR A))))
	 ((EQ (CAR A) 'DIFFERENCE) 
	  (mn "Conses" cons (length a))
	  (CONS 'DIFFERENCE (MAPCAR 'DERIV 
				    (CDR A))))
	 ((EQ (CAR A) 'TIMES)
	  (mn "Conses" cons (+ 3  (length a)))
	  (LIST 'TIMES 
		A 
		(CONS 'PLUS (MAPCAR 'DER1 (CDR A)))))
	 ((EQ (CAR A) 'QUOTIENT)
	  (mn "Conses" cons 13.)
	  (LIST 'DIFFERENCE 
		(LIST 'QUOTIENT 
		      (DERIV (CADR A)) 
		      (CADDR A))
		(LIST 'QUOTIENT 
		      (CADR A) 
		      (LIST 'TIMES
			    (CADDR A)
			    (CADDR A)
			    (DERIV (CADDR A))))))
	 (T 'ERROR))))
 (meter-funs #.(all-objs)
(DEFUN RUN ()
 (DECLARE (FIXNUM I))
 (DO ((I 0 (1+ I)))
     ((= I 1000.))
     (DERIV '(PLUS (TIMES 3 X X) (TIMES A X X) (TIMES B X) 5))
     (DERIV '(PLUS (TIMES 3 X X) (TIMES A X X) (TIMES B X) 5))
     (DERIV '(PLUS (TIMES 3 X X) (TIMES A X X) (TIMES B X) 5))
     (DERIV '(PLUS (TIMES 3 X X) (TIMES A X X) (TIMES B X) 5))
     (DERIV '(PLUS (TIMES 3 X X) (TIMES A X X) (TIMES B X) 5))))))